// DataLibrary InterfacePlugin - Index

// 識別子：DL_IDX
// 内容  ：インデックス。

//----------------------------------------------------------------------------//
// Plugin
//----------------------------------------------------------------------------//

//-- プラグインの読み込み処理 --//
DL_LoadInterface_Index:
	// 共有サブルーチンを読み込む
	Call DL_LoadInterface "Common"
	
	// サブインターフェースを読み込む
	Call DL_LoadInterface "Config"
	Call DL_LoadInterface "Help"
	
	// スキンを読み込む
	Call DL_LoadSkin "Index"
Return


//-- プラグインの終了処理 --//
DL_UnLoadInterface_Index:
	UnSet DL_IDX_LibCount
Return


//----------------------------------------------------------------------------//
// Interface-Index
//----------------------------------------------------------------------------//

//-- GUI_Index : インターフェースを開始する --//
DL_GUI_Index:
	// シングルモード時はインデックスを無視する
	If IsVarDefined(DL_SingleMode) Then
		Set DL_ShowGUI DL_GetLibInterface(DL_SingleMode)
		Set DL_ShowLib DL_SingleMode
		Set DL_MainTitle DL_GetLibTitle(DL_SingleMode)
		Return
	EndIf
	
	// グループライブラリを除くライブラリ数を設定する
	Call DL_IDX_CountLibrary
	
	// インターフェースを開始する
	Call DL_IDX_SkinAction "StartInterface"
	Show
	Do
		Call DL_CMN_WaitAction
	Loop While DL_IDX_InterfaceAction(DL_CMN_ActionID)
	
	// インターフェースを終了する
	Call DL_IDX_SkinAction "EndInterface"
Return


//-- InterfaceAction action_id : 動作を実行する。ループ続行なら1を返す --//
DL_IDX_InterfaceAction:
	Local action_id = Args(1)
	Switch LIndex(action_id, 1)
	Case "Library"
		Call DL_PlaySound_Click
		Call DL_IDX_SkinAction "SelectLibrary" action_id
		
		// 表示するライブラリのインターフェースを設定する
		Set DL_ShowLib LIndex(action_id, 2)
		Set DL_ShowID 0
		Set DL_ShowGUI DL_GetLibInterface(DL_ShowLib)
		Return 0
	Case "Scroll"
		// スクロール用の汎用処理を呼び出す
		Return DL_CMN_ScrollAction(action_id, "IDX")
	Case "Help" "Config"
		// サブインターフェース用の汎用処理を呼び出す
		Return DL_CMN_SubInterfaceAction(action_id, "IDX")
	Case "Quit" "Cancel"
		// 終了用の汎用処理呼び出す 
		Return DL_CMN_QuitAction(action_id, "IDX")
	Case Else
		// 未設定動作用の汎用処理を呼び出す
		Return DL_CMN_NotDefinedAction(action_id, "IDX")
	EndSw
Return 1


//----------------------------------------------------------------------------//
// Subroutine
//----------------------------------------------------------------------------//

//-- CountLibrary : グループライブラリを除くライブラリ数を設定する --//
DL_IDX_CountLibrary:
	If IsVarDefined(DL_IDX_LibCount) Then
		Return
	EndIf
	
	Set DL_IDX_LibCount 0
	Local idx
	ForEach idx In DL_LibInfo
		Incr DL_IDX_LibCount IsNumeric(idx)
	Next
Return


